<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop-2.0.xsd">


	<aop:config>
		<aop:aspect ref="thisAsClassCounter">
			<aop:before method="increment"
				pointcut="this(org.springframework.aop.aspectj.TestImpl)" />
		</aop:aspect>

		<aop:aspect ref="thisAsInterfaceCounter">
			<aop:before method="increment"
				pointcut="this(org.springframework.aop.aspectj.TestInterface)" />
		</aop:aspect>

		<aop:aspect ref="targetAsClassCounter">
			<aop:before method="increment"
				pointcut="target(org.springframework.aop.aspectj.TestImpl)" />
		</aop:aspect>

		<aop:aspect ref="targetAsInterfaceCounter">
			<aop:before method="increment"
				pointcut="target(org.springframework.aop.aspectj.TestInterface)" />
		</aop:aspect>

		<aop:aspect ref="thisAsClassAndTargetAsClassCounter">
			<aop:before method="increment"
				pointcut="this(org.springframework.aop.aspectj.TestImpl) and target(org.springframework.aop.aspectj.TestImpl)" />
		</aop:aspect>

		<aop:aspect ref="thisAsInterfaceAndTargetAsInterfaceCounter">
			<aop:before method="increment"
				pointcut="this(org.springframework.aop.aspectj.TestInterface) and target(org.springframework.aop.aspectj.TestInterface)" />
		</aop:aspect>

		<aop:aspect ref="thisAsInterfaceAndTargetAsClassCounter">
			<aop:before method="increment"
				pointcut="this(org.springframework.aop.aspectj.TestInterface) and target(org.springframework.aop.aspectj.TestImpl)" />
		</aop:aspect>

	</aop:config>

	<bean id="thisAsClassCounter" class="org.springframework.aop.aspectj.Counter" />
	<bean id="thisAsInterfaceCounter" class="org.springframework.aop.aspectj.Counter" />
	<bean id="targetAsClassCounter" class="org.springframework.aop.aspectj.Counter" />
	<bean id="targetAsInterfaceCounter" class="org.springframework.aop.aspectj.Counter" />
	<bean id="thisAsClassAndTargetAsClassCounter" class="org.springframework.aop.aspectj.Counter" />
	<bean id="thisAsInterfaceAndTargetAsInterfaceCounter" class="org.springframework.aop.aspectj.Counter" />
	<bean id="thisAsInterfaceAndTargetAsClassCounter" class="org.springframework.aop.aspectj.Counter" />
	<bean id="testBean" class="org.springframework.aop.aspectj.TestImpl" />

</beans>